Soy un novato en JS y me enfrento a un problema para el que no puedo encontrar una solución. Estoy escribiendo un script para automatizar un proceso de "limpieza" usando Karate/Selenium.
Guión:
Tengo esto hasta ahora:
driver.input('#searchField', ['Mobile', Key.ENTER], 200); //here I am using Karate/Selenium to enter the search criteria on the UI. function() { var searchResult = false; searchResult = driver.exists('//table//tr'); var errorPage = driver.exists('#exception'); do { var deleteCriteria = driver.scriptAll('//table//tr//td[3]', '_.innerText'); //Here I am grabbing actual values I need to search by across the entire column and putting it in array form. for (i = 0; i < deleteCriteria.length; i++) { driver.input('#searchField', [deleteCriteria[i], Key.ENTER], 200); driver.click('#deleteBtn'); driver.click('#deleteNumber'); driver.delay(10000); if (errorPage) { driver.back(); driver.delay(10000); driver.back(); driver.delay(10000); } else { continue; } } } while (searchResult); }Problema: cuando se muestra la página de excepción, el bloque IF no se inicia. El script falla al intentar encontrar el cuadro de búsqueda para buscar de nuevo. Por favor avise.
PD: entiendo que mi "while" aún no es correcto. Lo arreglaré una vez que se resuelva el problema en cuestión.
El código var errorPage = driver.exists('#exception'); se ejecuta una vez y almacena el estado en ese momento.
Si desea saber si existe en el momento actual, debe buscarlo nuevamente.
if (driver.exists('#exception')) { ... }